(()=>{"use strict";var e,t={65677:(e,t,r)=>{var n=p(r(66694)),o=p(r(79674)),a=p(r(71350));r(76528),r(47585);var i=p(r(90146)),l=p(r(82786)),u=r(54830),s=p(r(90840)),c=p(r(40710)),f=p(r(64524)),d=p(r(55046));function p(e){return e&&e.__esModule?e:{default:e}}function h(e,t){if(e){if("string"==typeof e)return y(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?y(e,t):void 0}}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}a.default.extend(i.default),"en"===function(e){var t,r,n,o=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=h(e))){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==r.return||r.return()}finally{if(l)throw a}}}}(document.cookie.split("; "));try{for(o.s();!(t=o.n()).done;){var a=(r=t.value.split("="),n=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a,i,l=[],u=!0,s=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(l.push(n.value),l.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(s)throw o}}return l}}(r,n)||h(r,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),i=a[0],l=a[1];if("Scr1wCTFdLanguage"===i)return decodeURIComponent(l)}}catch(e){o.e(e)}finally{o.f()}return null}()?a.default.locale("en"):a.default.locale("zh-cn"),n.default.init(window.init),window.CTFd=n.default,window.helpers=d.default,window.$=o.default,window.dayjs=a.default,window.nunjucks=l.default,window.Howl=u.Howl,(0,o.default)((function(){(0,f.default)(),(0,c.default)(),(0,s.default)(n.default.config.urlRoot)}))},79012:(e,t,r)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}r(65677);var o=r(56930),a=s(r(66694)),i=s(r(79674)),l=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=n(e)&&"function"!=typeof e)return{default:e};var r=u(t);if(r&&r.has(e))return r.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var l=a?Object.getOwnPropertyDescriptor(e,i):null;l&&(l.get||l.set)?Object.defineProperty(o,i,l):o[i]=e[i]}return o.default=e,r&&r.set(e,o),o}(r(85629));function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}function s(e){return e&&e.__esModule?e:{default:e}}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a,i,l=[],u=!0,s=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(l.push(n.value),l.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(s)throw o}}return l}}(e,t)||d(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=d(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==r.return||r.return()}finally{if(l)throw a}}}}function d(e,t){if(e){if("string"==typeof e)return p(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?p(e,t):void 0}}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function h(e,t){var r,n=f(document.cookie.split("; "));try{for(n.s();!(r=n.n()).done;){var o=c(r.value.split("="),2),a=o[0],i=o[1];if("Scr1wCTFdLanguage"===a)return"en"===decodeURIComponent(i)?e:t}}catch(e){n.e(e)}finally{n.f()}return t}function y(e){var t,r=f(document.cookie.split("; "));try{for(r.s();!(t=r.n()).done;){var n=c(t.value.split("="),2),o=n[0],a=n[1];if(o===e)return decodeURIComponent(a)}}catch(e){r.e(e)}finally{r.f()}return"zh"}var m={"#solves-graph":{data:function(){return a.default.api.get_challenge_solve_statistics()},format:function(e){for(var t=e.data,r=[],n=[],o={},a=0;a<t.length;a++)o[t[a].id]={name:t[a].name,solves:t[a].solves};var l=Object.keys(o).sort((function(e,t){return o[t].solves-o[e].solves}));return i.default.each(l,(function(e,t){r.push(o[t].name),n.push(o[t].solves)})),{title:{left:"center",text:h("Solve Counts","解题总量")},tooltip:{trigger:"item"},toolbox:{show:!0,feature:{mark:{show:!0},dataView:{show:!0,readOnly:!1},magicType:{show:!0,type:["line","bar"]},restore:{show:!0},saveAsImage:{show:!0}}},xAxis:{name:h("Solve Count","解题总量"),nameLocation:"middle",type:"value"},yAxis:{name:h("Challenge Name","题目名称"),nameLocation:"middle",nameGap:60,type:"category",data:r,axisLabel:{interval:0,rotate:0}},dataZoom:[{show:!1,start:0,end:100},{type:"inside",yAxisIndex:0,show:!0,width:20},{fillerColor:"rgba(233, 236, 241, 0.4)",show:!0,yAxisIndex:0,width:20}],series:[{itemStyle:{normal:{color:"#1f76b4"}},data:n,type:"bar"}]}}},"#keys-pie-graph":{data:function(){return a.default.api.get_submission_property_counts({column:"type"})},format:function(e){var t=e.data,r=t.correct,n=t.incorrect,o={title:{left:"center",text:h("Submission Percentages","提交比例")},tooltip:{trigger:"item"},toolbox:{show:!0,feature:{dataView:{show:!0,readOnly:!1},saveAsImage:{}}},legend:{orient:"vertical",top:"middle",right:0,data:["Fails","Solves"]},series:[{name:h("Submission Percentages","提交比例"),type:"pie",radius:["30%","50%"],avoidLabelOverlap:!1,label:{show:!1,position:"center"},itemStyle:{normal:{label:{show:!0,formatter:function(e){return"".concat(e.name," - ").concat(e.value," (").concat(e.percent,"%)")}},labelLine:{show:!0}},emphasis:{label:{show:!0,position:"center",textStyle:{fontSize:"14",fontWeight:"normal"}}}},emphasis:{label:{show:!0,fontSize:"30",fontWeight:"bold"}},labelLine:{show:!1},data:[{value:n,name:h("Fails","错误提交"),itemStyle:{color:"rgb(207, 38, 0)"}},{value:r,name:h("Solves","正确提交"),itemStyle:{color:"rgb(0, 209, 64)"}}]}]};return o}},"#categories-pie-graph":{data:function(){return a.default.api.get_challenge_property_counts({column:"category"})},format:function(e){var t=e.data,r=[],n=[];for(var a in t)t.hasOwnProperty(a)&&(r.push(a),n.push(t[a]));for(var i=0;i<t.length;i++)r.push(t[i].category),n.push(t[i].count);var l={title:{left:"center",text:h("Category Breakdown","类别细分")},tooltip:{trigger:"item"},toolbox:{show:!0,feature:{dataView:{show:!0,readOnly:!1},saveAsImage:{}}},legend:{type:"scroll",orient:"vertical",top:"middle",right:10,data:[]},series:[{name:h("Category Breakdown","类别细分"),type:"pie",radius:["30%","50%"],label:{show:!1,position:"center"},itemStyle:{normal:{label:{show:!0,formatter:function(e){return"".concat(e.percent,"% (").concat(e.value,")")}},labelLine:{show:!0}},emphasis:{label:{show:!0,position:"center",textStyle:{fontSize:"14",fontWeight:"normal"}}}},emphasis:{label:{show:!0,fontSize:"30",fontWeight:"bold"}},data:[]}]};return r.forEach((function(e,t){l.legend.data.push(e),l.series[0].data.push({value:n[t],name:e,itemStyle:{color:(0,o.colorHash)(e)}})})),l}},"#solve-percentages-graph":{layout:function(e){return{title:h("Solve Percentages per Challenge","每个题目的解出比例"),xaxis:{title:h("Challenge Name","题目名称")},yaxis:{title:"users"===a.default.config.userMode?h("Percentage of users (%)","解出的用户比例"):h("Percentage of teams (%)","解出的队伍比例"),range:[0,100]},annotations:e}},data:function(){return a.default.api.get_challenge_solve_percentages()},format:function(e){var t=e.data,r=[],n=[],o=[];for(var i in t){r.push(t[i].name),n.push(100*t[i].percentage);var l={x:t[i].name,y:100*t[i].percentage,text:Math.round(100*t[i].percentage)+"%",xanchor:"center",yanchor:"bottom",showarrow:!1};o.push(l)}var u={title:{left:"center",text:h("Solve Percentages per Challenge","每个题目的解出比例")},tooltip:{trigger:"item",formatter:function(e){return"".concat(e.name," - ").concat((Math.round(10*e.value)/10).toFixed(1),"%")}},toolbox:{show:!0,feature:{mark:{show:!0},dataView:{show:!0,readOnly:!1},magicType:{show:!0,type:["line","bar"]},restore:{show:!0},saveAsImage:{show:!0}}},xAxis:{name:h("Challenge Name","题目名称"),nameGap:40,nameLocation:"middle",type:"category",data:r,axisLabel:{interval:0,rotate:50}},yAxis:{name:"users"===a.default.config.userMode?h("Percentage of users (%)","解出的用户比例"):h("Percentage of teams (%)","解出的队伍比例"),nameGap:50,nameLocation:"middle",type:"value",min:0,max:100},dataZoom:[{show:!1,start:0,end:100},{type:"inside",show:!0,start:0,end:100},{fillerColor:"rgba(233, 236, 241, 0.4)",show:!0,right:60,yAxisIndex:0,width:20},{type:"slider",fillerColor:"rgba(233, 236, 241, 0.4)",top:35,height:20,show:!0,start:0,end:100}],series:[{itemStyle:{normal:{color:"#1f76b4"}},data:n,type:"bar"}]};return u}},"#score-distribution-graph":{layout:function(e){return{title:h("Score Distribution","得分分布"),xaxis:{title:h("Score Bracket","分数档次"),showticklabels:!0,type:"category"},yaxis:{title:"users"===a.default.config.userMode?h("Number of users","用户数目"):h("Number of teams","队伍数目")},annotations:e}},data:function(){return a.default.fetch("/api/v1/statistics/scores/distribution").then((function(e){return e.json()}))},format:function(e){var t=e.data.brackets,r=[],n=[],o=[];for(var i in t)r.push(parseInt(i));r.sort((function(e,t){return e-t}));var l="<0";return r.map((function(e){n.push("{0} - {1}".format(l,e)),o.push(t[e]),l=e})),{title:{left:"center",text:h("Score Distribution","得分分布")},tooltip:{trigger:"item"},toolbox:{show:!0,feature:{mark:{show:!0},dataView:{show:!0,readOnly:!1},magicType:{show:!0,type:["line","bar"]},restore:{show:!0},saveAsImage:{show:!0}}},xAxis:{name:h("Score Bracket","分数档次"),nameGap:40,nameLocation:"middle",type:"category",data:n},yAxis:{name:"users"===a.default.config.userMode?h("Number of users","用户数目"):h("Number of teams","队伍数目"),nameGap:50,nameLocation:"middle",type:"value"},dataZoom:[{show:!1,start:0,end:100},{type:"inside",show:!0,start:0,end:100},{fillerColor:"rgba(233, 236, 241, 0.4)",show:!0,right:60,yAxisIndex:0,width:20},{type:"slider",fillerColor:"rgba(233, 236, 241, 0.4)",top:35,height:20,show:!0,start:0,end:100}],series:[{itemStyle:{normal:{color:"#1f76b4"}},data:o,type:"bar"}]}}}};function v(){var e=function(){var e=m[t],r=l.init(document.querySelector(t),null,{locale:y("Scr1wCTFdLanguage")});e.data().then(e.format).then((function(e){r.setOption(e)}))};for(var t in m)e()}(0,i.default)((function(){!function(){var e=function(){var e=m[t];(0,i.default)(t).empty();var r=l.init(document.querySelector(t),null,{locale:y("Scr1wCTFdLanguage")});e.data().then(e.format).then((function(e){r.setOption(e),(0,i.default)(window).on("resize",(function(){null!=r&&null!=r&&r.resize()}))}))};for(var t in m)e()}(),setInterval(v,3e5)}))}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var a=r[e]={id:e,loaded:!1,exports:{}};return t[e](a,a.exports,n),a.loaded=!0,a.exports}n.m=t,e=[],n.O=(t,r,o,a)=>{if(!r){var i=1/0;for(c=0;c<e.length;c++){for(var[r,o,a]=e[c],l=!0,u=0;u<r.length;u++)(!1&a||i>=a)&&Object.keys(n.O).every((e=>n.O[e](r[u])))?r.splice(u--,1):(l=!1,a<i&&(i=a));if(l){e.splice(c--,1);var s=o();void 0!==s&&(t=s)}}return t}a=a||0;for(var c=e.length;c>0&&e[c-1][2]>a;c--)e[c]=e[c-1];e[c]=[r,o,a]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.j=80,(()=>{var e={80:0,671:0};n.O.j=t=>0===e[t];var t=(t,r)=>{var o,a,[i,l,u]=r,s=0;if(i.some((t=>0!==e[t]))){for(o in l)n.o(l,o)&&(n.m[o]=l[o]);if(u)var c=u(n)}for(t&&t(r);s<i.length;s++)a=i[s],n.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return n.O(c)},r=self.webpackChunkctfd=self.webpackChunkctfd||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var o=n.O(void 0,[160,759,736,694],(()=>n(79012)));o=n.O(o)})();